//
//  CZMainTabBar.swift
//  FYBXinLang
//
//  Created by mac1 on 16/3/20.
//  Copyright © 2016年 mac1. All rights reserved.
//

import UIKit


// TabBarItem的个数

let TabBarItemCount = 5

class CZMainTabBar: UITabBar {
    
    
    override  func layoutSubviews() {
        super.layoutSubviews()
        
        //计算 item的宽度
        let width = frame.width / (CGFloat)(TabBarItemCount )
        
        
        //打印里面的元素
//         print("----------------")
//             print("subViews: \(subviews)")
        
        //定义下标
        var index = 0
        
        // 计算最左边的这个frame,后面使用CGRectOffset
        let originFrame = CGRect(x: 0, y: 0, width: width, height: frame.height)
        
        
        for view in subviews {
            // 判断是否是 UITabBarButton
            //根据字符串得到一个类
              let cls = NSClassFromString("UITabBarButton")
            //判断是否为这个类
            if view.isKindOfClass(cls!){
                
                //方法一
                // 设置每个UITabBarButton的位置
//                view.frame = CGRect(x: CGFloat(index) * width, y: 0, width: width, height: frame.height)
                //判断 当index = 1的时候 让下一个 的X值 到第三 个位置
                
//                index += index == 1 ? 2 : 1
                
//                index++
//                if index == 2 {
//                    index++
//                    
//                }
                
                
                //方法二
                // rect: 原始的frame
                // dx: x方向的偏移量
                // dy: y方向的偏移量
            view.frame = CGRectOffset(originFrame,  CGFloat(index) * width, 0)
                index += index == 1 ? 2 : 1
                
            }
        }
        
        composeButton.frame = CGRect(x: 2 * width , y: 0, width: width, height: frame.height)
        
    }
    
    
    
    //MARK : - 懒加载
    /// 加号按钮
    private lazy var composeButton : UIButton = {
        
        //创建按钮
        let button = UIButton()
        
        //设置 普通 及其 高亮图片
        button.setBackgroundImage(UIImage(named:  "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named:  "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        button.setImage(UIImage(named:  "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named:  "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        //添加到tabBar上  在闭包里面用 self
        self.addSubview(button)
        //返回
        return button
        }()
}
